package org.asiainfo.auth.service;

import org.asiainfo.system.api.domain.vo.RemoteClientVo;

/**
 * 登录接口
 *
 * @author dotor-ww
 */
public interface ISysLoginService {

    /**
     * 二次校验验证码
     *
     * @param id 验证码ID
     */
    void secondCheckCaptcha(String id);

    /**
     * 用户退出
     *
     * @param refreshToken 刷新令牌
     */
    void logout(String refreshToken);

    /**
     * 校验客户端
     *
     * @param clientVo  客户端
     * @param grantType 授权类型
     */
    void checkClientId(RemoteClientVo clientVo, String grantType);

    /**
     * 刷新token
     *
     * @param userId   用户ID
     * @param tenantId 租户ID
     * @param clientVo 客户端
     * @return token
     */
    String refreshToken(Long userId, Long tenantId, RemoteClientVo clientVo);
}
